In many distributed computer systems the interaction between hardware or software components is asynchronous. In the Publish/Subscribe communications paradigm components send and receive data using subject name or topic addressing. For example, in the simplest form of a distributed system, a client element that wishes to receive data on a particular subject will subscribe to the event on which a server is publishing data about that subject. If the client wishes to receive information about a different subject, the client subscribes to a different event that relates to that subject. A client may have varying application needs that warrant changing the events to which it is subscribed. One prior system that supports such operation is The Information Bus (TIB/RENDEZVOUS) software, which is event bus software from TIBCO Software, Inc.
A network is an example of a distributed system in which such event subscription is used. In a large network that comprises many devices such as routers, switches, and gateways, making a software or configuration change to a single device is simple. However, making the same change to a group of devices can become cumbersome and will not scale to a large number of devices. However, large enterprises and users of large networks want to have the ability to configure groups of devices with as little intervention as possible. Such users typically use various provisioning applications to configure different services for the groups of devices. Unfortunately, a problem with this approach is that each application has its own logical view of the devices in the network that need configuration, which impedes the process of re-configuring large numbers of devices.
FIG. 1A is a simplified block diagram of a network 2 that includes a plurality of routers A1, A2, B1, B2, C1, C2. Assume, for purposes of illustrating an example, that routers A1, A2 are at campus A, routers B1, B2 are at campus B, and routers C1, C2 are at campus C of the enterprise that owns or operates the campuses and the network. A voice-over-IP application, Service X, is configured only on routers A1, A2, as indicated by oval 4. Service Z, which provides quality of service treatment of network data flows, is configured only on router B1, as indicated by oval 6. Service Y, which provides a virtual private network (VPN), involves routers B2, C1, as indicated by oval 8. Thus, each of Service X, Y, and Z are concerned only with the devices in ovals 4, 6, 8 respectively; in addition, each Service tends to treat the devices within its respective oval as a group rather than as individual devices.
It would be highly desirable to enable group level administration by provisioning applications, using a component that knows how to map events to a single device or group of devices.
It would also be desirable to provide such a component that can allow enterprises or other network users to name these events according to their service or business needs.
There is also a need for such a mapping component that fits well into a distributed system and that leverages the benefits of subject name addressing and provisioning.
In particular, there is a need to enable administrators and enterprises to group routers into sensible group(s) or namespace(s). Since namespace(s) can't be determined a priori, there is a need for a way to map namespaces based on their needs. Further, it is difficult to change device software, and there is a need for a faster way to affect namespace changes. There is also a need for a way to allow user applications to have different views of the application space.